一文简单理解“推荐系统”原理及架构

作者:运营增长 时间:2024-01-12 阅读:2883

本文主要介绍什么是推荐系统,为什么需要推荐系统,如何实现推荐系统的方案,包括实现推荐系统的一些常见模型,希望给读者提供学习实践参考。

为什么需要推荐系统

对于信息消费者,需要从大量信息中找到自己感兴趣的信息,而在信息过载时代,用户难以从大量信息中获取自己感兴趣、或者对自己有价值的信息。

对于信息生产者,需要让自己生产的信息脱颖而出,受到广大用户的关注。从物品的角度出发,推荐系统可以更好地发掘物品的长尾(long tail)。

一文简单理解“推荐系统”原理及架构

长尾效应是美国《连线》杂志主编 Chris Anderson 在 2006 年出版的《长尾理论》一书中指出,传统的 80/20 原则(80% 的销售额来自于 20% 的热门品牌)在互联网的加入下会受到挑战。互联网条件下,由于货架成本极端低廉,电子商务网站往往能出售比传统零售店更多的商品。这些原来不受到重视的销量小但种类多的产品或服务由于总量巨大,累积起来的总收益超过主流产品的现象。

主流商品往往代表了绝大多数用户的需求,而长尾商品往往代表了一小部分用户的个性化需求。推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确地推荐给需要它的用户,帮助用户发现那些他们感兴趣但很难发现的商品。

推荐系统的任务在于:

推荐系统的本质

一文简单理解“推荐系统”原理及架构

通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式。

一文简单理解“推荐系统”原理及架构

推荐系统就是自动联系用户和物品的一种工具,它能够在信息过载的环境中帮助用户发现令他们感兴趣的信息,也能将信息推送给对它们感兴趣的用户。

评价指标

从产品的角度出发,评价一个推荐系统可以从以下维度出发:

基于用户行为推荐

用户行为

用户行为可以分为显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback)。

显性反馈行为:指用户明确表示对物品喜好的行为,主要方式就是评分和喜欢/不喜欢。

常见的显性反馈行为可以参考如下表格:

一文简单理解“推荐系统”原理及架构

隐性反馈行为(implicit feedback):指的是那些不能明确反应用户喜好的行为。最具代表性的隐性反馈行为就是页面浏览行为。用户浏览一个物品的页面并不代表用户一定喜欢这个页面展示的物品,比如可能因为这个页面链接显示在首页,用户更容易点击它而已。

相比显性反馈,隐性反馈虽然不明确,但数据量更大。在很多网站中,很多用户甚至只有隐性反馈数据,而没有显性反馈数据。

基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法进行了深入研究,提出了很多方法。

比如基于邻域的算法(neighborhood-based)、隐语义模型(latent factor model)、基于图的随机游走算法(random walk on graph)等。

下面主要展开介绍基于领域的算法和隐语义模型算法。

基于领域的算法

基于邻域的方法是最著名的、在业界得到最广泛应用的推荐算法,主要包含下面两种算法:

算法涉及的基本步骤如下:

相似度计算

一文简单理解“推荐系统”原理及架构

计算相似度主要有以下 3 种计算方式:

①欧氏距离(Euclidean Distance)

向量欧式距离:

一文简单理解“推荐系统”原理及架构

相似度:

一文简单理解“推荐系统”原理及架构

②皮尔逊相关系数(Pearson Correlation Coefficient)

协方差,用来衡量 2 个向量的变化趋势是否一致:

一文简单理解“推荐系统”原理及架构

标准差:

一文简单理解“推荐系统”原理及架构

皮尔逊相关系数:

一文简单理解“推荐系统”原理及架构

皮尔逊相关系数使用协方差除以 2 个向量的标准差得到,值的范围[-1,1]。

③Cosine 相似度(Cosine Similarity,余弦距离)

一文简单理解“推荐系统”原理及架构

Cosine 相似度其实就是求 2 个向量的夹角。3 种计算相关系数的算法中,皮尔逊相关系数在生产中最为常用。

邻居的选择

一文简单理解“推荐系统”原理及架构

通过相似度计算出若干个最相似的邻居后,如何选择邻居?主要有以下方式:

基于用户的协同过滤算法(UserCF)

简单而言,就是给用户推荐和他兴趣相似的其他用户喜欢的物品。

在一个在线个性化推荐系统中,当一个用户 A 需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户 A 没有听说过的物品推荐给 A 。这种方法称为基于用户的协同过滤算法。

一文简单理解“推荐系统”原理及架构

用户 A 与用户 C 的兴趣比较相似,用户 C 喜欢了物品 4,所以给用户 A 推荐物品 4。

数学实现如下图:

一文简单理解“推荐系统”原理及架构

已知用户评分矩阵 Matrix R(一般都是非常稀疏的),推断矩阵中问号处的评分值。


UserCF 模型存在问题:

基础解决方案:

基于用户的协同过滤不流行的原因:

基于物品的协同过滤算法(ItemCF)

基于物品的协同过滤算法(简称 ItemCF)就是给用户推荐那些和他们之前喜欢的物品相似的物品。比如,该算法会因为你购买过《数据挖掘导论》而给你推荐《机器学习》。

不过,ItemCF 算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。该算法认为,物品 A 和物品 B 具有很大的相似度是因为喜欢物品 A 的用户大都也喜欢物品 B。

一文简单理解“推荐系统”原理及架构

物品 1 和物品 3 都被用户 A 和用户 B 喜欢,所以认为是相似物品,所以当用户 C 喜欢物品 1,就给用户 C 推荐物品 3。

算法主要步骤如下:

数学实现思路如下图:

一文简单理解“推荐系统”原理及架构

需要用户 5 对物品 1 的评分 r_15,由于物品 3、物品 6 是与物品 1 最为相似的 2 个物品,取相似度作为权重,所以 r_15 可以预测如下:

一文简单理解“推荐系统”原理及架构

模型优势:

UserCF 和 ItemCF 综合比较

UserCF 给用户推荐那些和他有共同兴趣爱好的用户喜欢的物品,而 ItemCF 给用户推荐那些和他之前喜欢的物品类似的物品。

从这个算法的原理可以看到:

一文简单理解“推荐系统”原理及架构

换句话说:

基于用户标签推荐


一文简单理解“推荐系统”原理及架构

推荐系统的目的是联系用户的兴趣和物品,这种联系需要依赖不同的媒介。

目前流行的推荐系统基本上通过 3 种方式联系用户兴趣和物品:

标签相关问题

标签的定义

根据维基百科的定义,标签是一种无层次化结构的、用来描述信息的关键词,它可以用来描述物品的语义。

根据给物品打标签的人的不同,标签应用一般分为两种:

当一个用户对一个物品打上一个标签,这个标签一方面描述了用户的兴趣,另一方面则表示了物品的语义,从而将用户和物品联系了起来。因此下面主要讨论 UGC 的标签应用,研究用户给物品打标签的行为,探讨如何通过分析这种行为给用户进行个性化推荐。

用户为什么要打标签

从产品的角度,我们需要理解用户打标签的行为,为什么要打标签,只有深入了解用户的行为,我们才能基于这个行为设计出令他们满意的个性化推荐系统。

用户这个行为背后的原因主要可以从 2 个维度进行探讨:

用户打什么样的标签

用户常打的标签如下:

为什么要给用户推荐标签

用户浏览某个物品时,标签系统非常希望用户能够给这个物品打上高质量的标签,这样才能促进标签系统的良性循环。因此,很多标签系统都设计了标签推荐模块给用户推荐标签。

一般认为,给用户推荐标签有以下好处:

如何给用户推荐标签

用户 u 给物品 i 打标签时,我们有很多方法可以给用户推荐和物品 i 相关的标签。

比较简单的方法有 4 种:

一个最简单的算法

基本步骤如下:

一文简单理解“推荐系统”原理及架构

对于上面算法,用户 u 对于物品 i 的兴趣公式如上:

一文简单理解“推荐系统”原理及架构

某用户使用过幽默标签 10 次,搞笑标签 3 次,讽刺标签 6 次。这 3 个标签被物品 A 使用的次数分别的 4、7、2。

由此计算用户对物品的兴趣值为:

一文简单理解“推荐系统”原理及架构

上面的计算公式会倾向于给热门标签对应的热门物品很大的权重,因此会造成推荐热门的物品给用户,从而降低推荐结果的新颖性,还有数据稀疏性的问题,可以通过计算结果除以惩罚项来进行修正。

系统冷启动问题

问题简介

系统冷启动(cold start)问题主要在于如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品的信息)设计个性化推荐系统,从而在网站刚发布时就让用户体验到个性化推荐服务这一问题。

主要可以分为 3 类:

解决思路

针对上述 3 类冷启动问题,一般来说,可以参考如下解决方案:

评估指数

一文简单理解“推荐系统”原理及架构

是根据用户在训练集上的行为给用户作出的推荐列表,

一文简单理解“推荐系统”原理及架构

是用户在测试集上的行为列表。

准确率

用于度量模型的预测值与真实值之间的误差。

一文简单理解“推荐系统”原理及架构

召回率

用于度量有多个正例被分为正例,这里是正确推荐的数量占测试集合上用户行为列表的比例。

一文简单理解“推荐系统”原理及架构

覆盖率

用户衡量推荐的物品占全部商品的比例,一般我们推荐的物品希望尽可能覆盖更多类别 。常见有 2 种计算方法:

通过推荐的商品占总商品的比例:

一文简单理解“推荐系统”原理及架构

或者通过推荐物品的熵值得到覆盖率,熵值越大,覆盖率越大:

一文简单理解“推荐系统”原理及架构

多样性

用于衡量每次推荐里面的推送的物品占所有可能性的比率,多样性越大,每次推荐的物品越丰富。

一文简单理解“推荐系统”原理及架构

实际上,不同的平台还有不同的衡量标准,例如用户满意度,广告收益,需要结合实际业务情况做策略调整。

系统架构

基于特征的推荐系统

再次回顾一下上面提到的推荐系统联系用户和物品的 3 种途径。

一文简单理解“推荐系统”原理及架构

将这 3 种方式都抽象一下就可以发现,如果认为用户喜欢的物品也是一种用户特征,或者和用户兴趣相似的其他用户也是一种用户特征,那么用户就和物品通过特征相联系。

一文简单理解“推荐系统”原理及架构

用户特征种类特别多,主要包括以下几类:

系统整体架构

由于推送策略本身的复杂性,如果要在一个系统中把上面提到的各种特征和任务都统筹考虑,那么系统将会非常复杂,而且很难通过配置文件方便地配置不同特征和任务的权重。

因此,推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定权重或者优先级合并、排序然后返回。

一文简单理解“推荐系统”原理及架构

这样做有 2 个好处:

我们可以将每一种策略都设计成一个推荐引擎,然后通过分析用户对推荐结果的反馈了解用户比较喜欢哪些引擎推荐出来的结果,从而对不同的用户给出不同的引擎组合权重。

推荐引擎架构

推荐引擎使用一种或几种用户特征,按照一种推荐策略生成一种类型物品的推荐列表,基本架构如下图:

一文简单理解“推荐系统”原理及架构

如上图,推荐引擎架构主要包括 3 部分:

其中,有几个模块需要特别介绍一下:

总结

除了本文介绍的模型算法,基于用户行为推荐还有隐语义模型,基于图的模型比较常见,还有的基于上下文、社交网络推荐。实际有一些常见的算法库可以实现推荐系统运算,包括 LibRec,Crab 等。

上一篇:上海地板砖品牌(n95国产口罩十大排名)

下一篇:厨房门口两边柜子图(冰箱放在进厨房的门边

猜你喜欢

卧室音响安装在什么位置好(路由器在卧室好吗)

卧室音响安装在什么位置好(路由器在卧室好吗)

资讯 2023-11-04 4725
花洒十大品牌都是什么(花洒淋浴哪个品牌好)

花洒十大品牌都是什么(花洒淋浴哪个品牌好)

知识 2023-11-08 3003
自动充气浴缸(充气的浴盆漏气了)

自动充气浴缸(充气的浴盆漏气了)

资讯 2023-11-13 1903
南京房改房是什么意思(南京港龙园层高多少)

南京房改房是什么意思(南京港龙园层高多少)

资讯 2023-11-15 4761
水嘴节水认证证书(水龙头忘记关24小时多少水费)

水嘴节水认证证书(水龙头忘记关24小时多少水费)

资讯 2023-11-16 174
法恩莎卫浴f4智能坐便器(法恩莎智能马桶怎么样)

法恩莎卫浴f4智能坐便器(法恩莎智能马桶怎么样)

资讯 2023-11-16 1971
聚酯纤维和梭织哪个舒服(无尘布是什么材质)

聚酯纤维和梭织哪个舒服(无尘布是什么材质)

资讯 2023-11-16 1662
日式整体浴室多少钱一个(你们觉得这种模式在我国行的通吗)

日式整体浴室多少钱一个(你们觉得这种模式在我国行的通吗)

知识 2023-11-16 3951
临沂木材市场(青岛地区批发小商品去义乌好还是临沂好)

临沂木材市场(青岛地区批发小商品去义乌好还是临沂好)

资讯 2023-11-16 4132
湘潭市沁园净水器售后电话(花匠王安忆中花匠是个怎样的人)

湘潭市沁园净水器售后电话(花匠王安忆中花匠是个怎样的人)

知识 2023-11-18 1585
飘窗书桌简单省钱(卧室飘窗书桌一体书桌比窗户高怎么办)

飘窗书桌简单省钱(卧室飘窗书桌一体书桌比窗户高怎么办)

资讯 2023-11-20 2536
三室一厅中式装修效果图(山西运城平陆实际面积80平米三室一厅的房子怎么装修好)

三室一厅中式装修效果图(山西运城平陆实际面积80平米三室一厅的房子怎么装修好)

知识 2023-11-22 3308
地暖锅炉不点火什么原因(但是27度还不点火怎么回事)

地暖锅炉不点火什么原因(但是27度还不点火怎么回事)

知识 2023-11-25 1183
阳台不封顶怎么装修好看图片(我的别墅是三层楼)

阳台不封顶怎么装修好看图片(我的别墅是三层楼)

资讯 2023-11-26 2345
老板9b32燃气灶怎么样(9b52是老板高端机吗)

老板9b32燃气灶怎么样(9b52是老板高端机吗)

资讯 2024-01-16 755
20万一栋!又想骗我盖别墅?

20万一栋!又想骗我盖别墅?

知识 2024-01-24 2544
闹大了!央媒、官媒军媒集体发声,“战马行动”账号被封,认怂了

闹大了!央媒、官媒军媒集体发声,“战马行动”账号被封,认怂了

资讯 2024-01-29 519
2023深圳国际工业设计大展开幕

2023深圳国际工业设计大展开幕

知识 2024-02-02 4199
预应力混凝土管桩(二)——管桩的选型

预应力混凝土管桩(二)——管桩的选型

资讯 2024-02-08 1700
雅洁五金密码锁(家居五金十大品牌有哪些)

雅洁五金密码锁(家居五金十大品牌有哪些)

知识 2024-02-18 757